//通用弹出式文件上传
function commonUpload(callback) {
    $.dialog({
        content: "url:systemController.do?commonUpload",
        lock: true,
        title: "文件上传",
        zIndex: 2100,
        width: 700,
        height: 200,
        parent: windowapi,
        cache: false,
        ok: function () {
            var iframe = this.iframe.contentWindow;
            iframe.uploadCallback(callback);
            return true;
        },
        cancelVal: '关闭',
        cancel: function () {
        }
    });
}

function browseImages(inputId, Img) {// 图片管理器，可多个上传共用
    var finder = new CKFinder();
    finder.selectActionFunction = function (fileUrl, data) {//设置文件被选中时的函数
        $("#" + Img).attr("src", fileUrl);
        $("#" + inputId).attr("value", fileUrl);
    };
    finder.resourceType = 'Images';// 指定ckfinder只为图片进行管理
    finder.selectActionData = inputId; //接收地址的input ID
    finder.removePlugins = 'help';// 移除帮助(只有英文)
    finder.defaultLanguage = 'zh-cn';
    finder.popup();
}

function browseFiles(inputId, file) {// 文件管理器，可多个上传共用
    var finder = new CKFinder();
    finder.selectActionFunction = function (fileUrl, data) {//设置文件被选中时的函数
        $("#" + file).attr("href", fileUrl);
        $("#" + inputId).attr("value", fileUrl);
        decode(fileUrl, file);
    };
    finder.resourceType = 'Files';// 指定ckfinder只为文件进行管理
    finder.selectActionData = inputId; //接收地址的input ID
    finder.removePlugins = 'help';// 移除帮助(只有英文)
    finder.defaultLanguage = 'zh-cn';
    finder.popup();
}

function decode(value, id) {//value传入值,id接受值
    var last = value.lastIndexOf("/");
    var filename = value.substring(last + 1, value.length);
    $("#" + id).text(decodeURIComponent(filename));
}


function moveOption(e1, e2) {
    try {
        for (var i = 0; i < e1.options.length; i++) {
            if (e1.options[i].selected) {
                var e = e1.options[i];
                e2.options.add(new Option(e.text, e.value));
                e1.remove(i);
                i = i - 1
            }
        }
        document.getElementById('city').value = getvalue(document.getElementById('list2'));
    }
    catch (e) {
    }
}

function getvalue(geto) {
    var allvalue = "";
    for (var i = 0; i < geto.options.length; i++) {
        allvalue += geto.options[i].value + ",";
    }
    return allvalue;
}


//上移
function moveUp(obj) {
    for (var i = 1; i < obj.length; i++) {//最上面的一个不需要移动，所以直接从i=1开始
        if (obj.options[i].selected) {
            if (!obj.options.item(i - 1).selected) {
                var selText = obj.options[i].text;
                var selValue = obj.options[i].value;
                obj.options[i].text = obj.options[i - 1].text;
                obj.options[i].value = obj.options[i - 1].value;
                obj.options[i].selected = false;
                obj.options[i - 1].text = selText;
                obj.options[i - 1].value = selValue;
                obj.options[i - 1].selected = true;
            }
        }
    }
}

//下移
function moveDown(obj) {
    for (var i = obj.length - 2; i >= 0; i--) {//向下移动，最后一个不需要处理，所以直接从倒数第二个开始
        if (obj.options[i].selected) {
            if (!obj.options[i + 1].selected) {
                var selText = obj.options[i].text;
                var selValue = obj.options[i].value;
                obj.options[i].text = obj.options[i + 1].text;
                obj.options[i].value = obj.options[i + 1].value;
                obj.options[i].selected = false;
                obj.options[i + 1].text = selText;
                obj.options[i + 1].value = selValue;
                obj.options[i + 1].selected = true;
            }
        }
    }
}

//置顶
function moveTop(obj) {
    var opts = [];
    for (var i = obj.options.length - 1; i >= 0; i--) {
        if (obj.options[i].selected) {
            opts.push(obj.options[i]);
            obj.remove(i);
        }
    }
    var index = 0;
    for (var t = opts.length - 1; t >= 0; t--) {
        var opt = new Option(opts[t].text, opts[t].value);
        opt.selected = true;
        obj.options.add(opt, index++);
    }
}

//置底
function moveBottom(obj) {
    var opts = [];
    for (var i = obj.options.length - 1; i >= 0; i--) {
        if (obj.options[i].selected) {
            opts.push(obj.options[i]);
            obj.remove(i);
        }
    }
    for (var t = opts.length - 1; t >= 0; t--) {
        var opt = new Option(opts[t].text, opts[t].value);
        opt.selected = true;
        obj.options.add(opt);
    }
}


/**
 * 根据选择的主业务，选择管理业务
 */
function changeRotaLevel(value) {
    $.ajax({
        url: "cbsCgreportHeadController.do?getRotalevel",
        data: {
            "levelid": value
        },
        cache: false,
        dataType: 'json',
        type: 'POST',
        success: function (data) {
            if (data.success) {
                var obj = data.obj;
                var html = "<option value=''>-- 请选择 --</option>";
                obj.forEach(function (i, item) {
                    html += '<option value="' + i.rotaName + '">' + i.rotaNameChinese + '</option>';
                });
                $("select[name^='rotaListName1']").each(function () {
                    $(this).html(html);
                });
            } else {
                mui.alert(data.msg);
            }
        }
    });
}

/**
 * 特殊字符限制判断
 * @param str
 * @returns {boolean}
 * @constructor
 */
function CheckStr(str) {
    if ((/[\!\@\#\$\%\&\^\"\'\、\(\)\|\#\%\^\&\￥\*\+\=\（\）\{\}\\\/\【\】\、\<\>\、\《\》\:\;\：\；\"\“\'\‘\,\，\.\。\)<>?]/gi).test(str)) {
        return false;
    } else {
        return true;
    }
}

/**
 * 判断报表名称是否唯一
 * @returns {boolean}
 */
function checkName() {
    var f = true;
    var name = $('#reportName').val();
    if (CheckStr(name.replace(/\s+/g, ""))) {
        $.ajax({
            type: "POST",
            data: {'name': name},
            async: false,
            url: "cbsCgreportHeadController.do?checkName",
            dataType: "json",
            success: function (data) {
                var htmlYES = '<font color="green">报表名称可用</font>';
                var htmlNO = '<font color="red">报表名称已存在</font>';
                if (data.obj <= 0) {
                    $('#isOrNotUse').html(htmlYES);
                    f = true;
                } else {
                    $('#isOrNotUse').html(htmlNO);
                    tip("报表名称已存在！");
                    f = false;
                }
            }
        });
    } else {
        tip("报表名称不能含有特殊字符！");
        f = false;
    }

    return f;
}

/**
 * 添加附表
 */
function addTable() {
    $("#rotaSelect").append("<span><br/><br/>");
    var oSel = document.getElementById('rotaListId1');
    var oNewSel = oSel.cloneNode(true);
    document.getElementById("rotaSelect").append(oNewSel);
    $("#rotaSelect").append("<input type='button' value='删除' onclick='delTable(this)' style='margin-left: 5px'></span>");
}


/**
 * 删除动态添加的附表
 */
function delTable(Obj) {
    $(Obj).prev(':first').remove();
    $(Obj).prev(':first').find('br').remove();
    $(Obj).remove();
}


/**
 * 保存
 */
function saveRoteLevel(type) {
    var flag = true;
    //主表和业务表
    var otabName = [], ttabName = [];//主表id 关联表id
    otabName.push($("#rotaListId").find("option:selected").val());
    $("select[name^='rotaListName1']").find("option:selected").each(function () {
        if (ttabName.indexOf($(this).attr('selected', 'selected').val()) == -1) {
            ttabName.push($(this).attr('selected', 'selected').val());
        } else {
            tip("关联表业务不能相同！");
            flag = false;
            return false;
        }

    });
    var reportName = $('#reportName').val(); //报表名称
    if (reportName == '' || reportName == null) {
        tip("报表名称不能为空！");
        flag = false;
        return false;
    }

    var rotaListIdName = $("#rotaListId").val();
    if (rotaListIdName == '' && rotaListIdName.length == 0) {
        tip("请选择表");
        flag = false;
        return false;
    }
    var content = $("#content").val();
    var gx = 0;
    if ($("input[name='gx']").attr('checked')) {
        gx = 1;
    }
    var cgid = "";
    if (type == 'update') {
        cgid = $("#cgid").val();
    }

    //选中的列
    var vkorg = $("#select_right option").map(function () {
        return $(this).val();
    }).get().join(",");

    var f = true;
    var result = objArrayResult();  //拼接的表格内容
    if (!result) {
        tip("自定义条件不能为空！");
        f = false;
    } else {
        for (var o in result) {
            if (result[o].length == 1) {
                f = false;
                //TODO break;
            }
        }
    }


    var t = true;
    if (type == 'save') {
        //检查报表名称是否有重复
        t = checkName();
    }
    if (flag && f && t) {
        //关联业务，或者主业务，本来是有的，后来产生不选择的情况，导致报错。
        $.ajax({
            url: "cbsCgreportHeadController.do?checkedTabName",
            type: "POST",
            data: {
                "otabName": JSON.stringify(otabName),
                "vkorg": vkorg,
                "ttabName": JSON.stringify(ttabName)
            },
            async: false,
            dataType: "json",
            success: function (data) {
                if (!data.success) {
                    tip("已选项目包含未知的表字段！");
                } else {
                    //生成sql
                    $.ajax({
                        url: "cbsCgreportHeadController.do?addSqlResult",
                        data: {
                            "vkorg": vkorg,
                            "otabName": otabName,
                            "ttabName": JSON.stringify(ttabName),
                            "result": JSON.stringify(result),
                            "reportName": reportName,
                            "content": content,
                            "gx": gx,
                            "cgid": cgid,
                            "type": type
                        },
                        cache: false,
                        traditional: true,//这里设置为true
                        dataType: 'json',
                        type: 'POST',
                        success: function (data) {
                            window.top.tip("保存成功！");
                            addOneTab("自定义报表", "cbsCgreportHeadController.do?cbsCgreportHead");
                            if (type == 'save') {
                                closetab("新建自定义报表");
                            }
                            if (type == 'update') {
                                closetab("编辑自定义报表");
                            }
                        }
                    });
                }
            }
        });
    }
}

/**
 * 预览结果，只查看生成的内容的前20条
 */
function seeResult(type) {
    var name = $('#reportName').val(); //报表名称
    //主表和业务表
    var otabName = [], ttabName = [];//主表id 关联表id
    otabName.push($("#rotaListId").find("option:selected").val());
    $("select[name^='rotaListName1']").find("option:selected").each(function () {
        if (ttabName.indexOf($(this).attr('selected', 'selected').val()) == -1) {
            ttabName.push($(this).attr('selected', 'selected').val());
        } else {
            tip("关联表业务不能相同！");
            flag = false;
            return false;
        }
    });
    //选中的列
    var vkorg = $("#select_right option").map(function () {
        return $(this).val();
    }).get().join(",");
    if (name == '' || name == null) {
        tip("报表名称不能为空！");
        return false;
    }
    var rotaListIdName = $("#rotaListId").val();
    if (rotaListIdName == '' && rotaListIdName.length == 0) {
        tip("请选择表");
        return false;
    }
    var f = true;
    var result = objArrayResult();  //拼接的表格内容
    if (!result) {
        tip("自定义条件不能为空！");
        f = false;
    } else {
        for (var o in result) {
            if (result[o].length == 1) {
                f = false;
            }
        }
    }


    var t = true;
    if (type == 'save') {
        //检查报表名称是否有重复
        t = checkName();
    }
    if (f && t) {
        //关联业务，或者主业务，本来是有的，后来产生不选择的情况，导致报错。
        $.ajax({
            url: "cbsCgreportHeadController.do?checkedTabName",
            type: "POST",
            data: {
                "otabName": JSON.stringify(otabName),
                "vkorg": vkorg,
                "ttabName": JSON.stringify(ttabName)
            },
            async: false,
            dataType: "json",
            success: function (data) {
                if (!data.success) {
                    tip("已选项目包含未知表字段！");
                } else {
                    var url = 'cbsCgreportHeadController.do?getSqlResult&vkorg=' + vkorg + '&otabName=' + otabName + '&ttabName=' + JSON.stringify(ttabName) + '&result=' + JSON.stringify(result) + '&name=' + name;
                    url = encodeURI(url);
                    addOneTab('预览结果', url);

                }
            }
        });
    }
}

/**
 * 获取表格拼接内容
 * @returns {{}}
 */
function objArrayResult() {
    var f = true;
    var emptyObj = {};
    var tb = document.getElementById('Ttbody');    // table 的 id
    var rows = tb.rows;                           // 获取表格所有行
    if (rows.length == 0) {
        emptyObj = false;
    } else {
        for (var i = 0; i < rows.length; i++) {     //遍历该表格的所有tr
            var myTableName = [];
            for (var j = 0; j < rows[i].cells.length; j++) {    // 遍历该行的 td
                var tdArr = rows[i].cells[j];  // 获取第i行第j列的td
                if ((j + 1) == 1) { //第一列
                    myTableName.push(tdArr.children["0"].value + '.' + tdArr.children["1"].value);　　//表名.字段名称
                } else if ((j + 1) == 2) { //第二列，查询条件
                    if (tdArr.children.length > 1) {
                        if (rows[i] != '' && rows[i] != 'undefined' && rows[i].children.length > 2 && rows[i].children[3].children.length > 0 && rows[i].children[3].children["0"].checked) {
                            if (rows[i].children.length = 6 && rows[i].children[5].childNodes.length > 0 && rows[i].children[5].childNodes["0"].checked) { //时间框查询,勾选时间框，判断下一行的查询条件是否为空
                                if (rows[i+1].cells[j].children[1].children[2].value == "") {
                                    tip("查询条件不能为空！");
                                    f = false;
                                    break;
                                } else {
                                    myTableName.push(rows[i+1].cells[j].children[1].children[2].value);
                                }
                            } else {
                                if (tdArr.children[1].children[2].value == "") {
                                    tip("查询条件不能为空！");
                                    f = false;
                                    break;
                                } else {
                                    myTableName.push(tdArr.children[1].children[2].value);
                                }
                            }
                        } else {
                            myTableName.push(tdArr.children[1].children[2].value);
                        }
                    } else {
                        myTableName.push("");
                    }
                } else if ((j + 1) == 3) { //第三列，查询条件
                    if (tdArr.children["0"].value == 1) { /*普通*/
                        myTableName.push(tdArr.children["1"].value);
                    } else if (tdArr.children["0"].value == 2) { /*其他业务表ID,做成模糊查询*/
                        myTableName.push(tdArr.children["1"].value);
                    } else if (tdArr.children["0"].value == 3) {  /*包含固定内容*/
                        myTableName.push(tdArr.children["1"].value);
                    } else if (tdArr.children["0"].value == 4) { /*字典值 i.dictionary code*/
                        myTableName.push(tdArr.children["1"].value);
                    } else if (tdArr.children["0"].value == 5) { //日期格式
                        if (tdArr.children.length > 2) {
                            if (tdArr.children[2].children.length > 0) {
                                myTableName.push(tdArr.children[2].children[2].value);
                            } else {
                                myTableName.push("");
                            }
                        } else {
                            myTableName.push("");
                        }
                    } else {
                        myTableName.push(tdArr.children["0"].value);  //时间差的第三列内容获取
                    }
                } else if ((j + 1) == 4) { //第四列,分组查询
                    if (tdArr.children.length > 0) {
                        myTableName.push(tdArr.children["0"].checked ? "1" : "0");
                    } else {
                        myTableName.push("0");
                    }
                } else if ((j + 1) == 5) { //组合条件
                    if (tdArr.children.length > 0) {
                        myTableName.push(tdArr.children["0"].value);
                    } else {
                        myTableName.push("");
                    }
                } else if ((j + 1) == 6) { //时间差查询
                    if (tdArr.children.length > 0) {
                        myTableName.push(tdArr.children["0"].checked ? "1" : "0");
                    } else {
                        myTableName.push("0");
                    }
                }
            }
            emptyObj[i] = myTableName;
            if (!f) {
                break;
            }
        }
    }
    return emptyObj;
}

/**
 *
 * @param array 编辑自定义报表  自定义条件 隐藏域tr 中 每个 td存放的文本信息
 * @param arr 自定义条件查询项目名称在数据库对应id
 * @param type
 */
function resGeneration2(array, arr, type) {
    /**
     * vkorg tr对应字段id
     */
    var vkorg;
    if (type == '1') {
        vkorg = arr.toString();
    } else {
        vkorg = $("#select_right option").map(function () {
            return $(this).val();
        }).get().join(",");
    }
    var map = {};

    var otabName = [], ttabName = [];//主表id 关联表id
    otabName.push($("#rotaListId").find("option:selected").val());
    $("select[name^='rotaListName1']").find("option:selected").each(function () {
        ttabName.push($(this).attr('selected', 'selected').val());
    });

    $.ajax({
        url: "cbsCgreportHeadController.do?getCgreportGen",
        data: {
            "vkorg": vkorg
        },
        cache: false,
        dataType: 'json',
        type: 'POST',
        success: function (data) {
            var obj = data.obj;
            var html = '';
            //i.rotaName  所属表名
            //i.isZd   是否是数据字典
            // i.numbericField 字段名
            //i.id id
            var j = 0;
            obj.forEach(function (i, item) {
                if (array[j][5] == '') { //时间差查询
                    html += '<tr>';
                    //i.term  根据类型，显示查询条件,
                    var html1 = '';
                    html1 += '<td>' +
                        '<select id="ProjectTrees1_' + array[j][0] + '" sid="' + array[j][0] + '" vs="' + array[j][2] + '" attrs="type_date" name="proTrees1_' + array[j][0] + '" class="easyui-combotree" style="width: 100px;">' +
                        '</select>' +
                        '</td>' +    // value="1" 根据type，决定显示以什么方式获取查询的内容
                        '<td><input type="hidden" value="1"><input type="text" style="width: 90px;" value="' + array[j][3] + '"><span style="font-size: 10px">单位：小时</span></td><td><input type="checkbox" checked="checked" value="1" hidden="hidden"></td><td></td><td></td>';

                    $.ajax({
                        url: "cbsCgreportHeadController.do?getTimeDiff",
                        cache: false,
                        data: {
                            "otabName": JSON.stringify(otabName),
                            "ttabName": JSON.stringify(ttabName)
                        },
                        dataType: 'json',
                        type: 'POST',
                        async: false,
                        success: function (data) {
                            var objs = data.obj;
                            html += '<td><input type="hidden" id="cheBox" value="' + array[j][7] + '"><select style="width: 80px;" id="selectChebox" onchange="changeChoice(options[this.options.selectedIndex].getAttribute(\\\'chebox\\\'),this)">';
                            /*表名*/
                            objs.forEach(function (it) {
                                if (it.id == array[j][0]) {
                                    html += '<option value="' + it.numbericField + '" selected="selected">' + it.fieldChinese + '</option>';
                                } else {
                                    html += '<option value="' + it.numbericField + '">' + it.fieldChinese + '</option>';
                                }
                            });
                            html += '</select></td>' + html1;

                            var $tr = $(objs).parents('tr').eq(0);
                            $tr.after('<tr>' + html + '</tr>');
                        }
                    });

                    // j++; //跳过array的一个循环

                } else {
                    html += '<tr><td>' +
                        '<input type="hidden" value="' + i.rotaName + '">' +
                        '<input type="hidden" value="' + i.numbericField + '">' + i.fieldChinese + '</td>';

                    //i.term  根据类型，显示查询条件，如果查询条件相同，i.id 会相同，会导致回显查询条件的时候为空，故id 加上变量 j
                    html += '<td>' +
                        '<select id="ProjectTree_' + j + i.id + '" m="' + j + '" ary="' + array[j][6] + '" sid="' + i.id + '" attrs="' + i.term + '" name="proTree_' + i.id + '" class="easyui-combotree" style="width: 100px;"' +
                        '</select>' +
                        '</td>';

                    map[j + i.id] = array[j][2]; //回显时使用，选中的值
                    if (array[j][6] != '1') {  //回显时判断是否是时间差查询，如果是，则前面几个框默认为空

                        // i.fieldType 根据type，决定显示以什么方式输入查询的内容
                        html += '<td><input type="hidden" value="' + i.fieldType + '">';
                        if (i.fieldType == '1') { /*普通*/
                            html += '<input type="text" name="" value="' + array[j][3] + '">';
                        } else if (i.fieldType == '2') {  /*其他业务表ID,做成模糊查询*/
                            html += '<input type="text" name="" value="' + array[j][3] + '">';
                        } else if (i.fieldType == '3') {  /*包含固定内容*/
                            html += '<select>';
                            if (i.fixedcontent != null && i.fixedcontent != '') {
                                var obj = $.parseJSON(i.fixedcontent);
                                for (var i = 0, l = obj.length; i < l; i++) {
                                    for (var key in obj[i]) {
                                        if (array[j][3] == obj[i][key]) {
                                            html += '<option value="' + obj[i][key] + '" selected="selected">' + key + '</option>';
                                        } else {
                                            html += '<option value="' + obj[i][key] + '">' + key + '</option>';
                                        }
                                    }
                                }
                                html += '</select>';
                            }
                        } else if (i.fieldType == '4') {/*字典值 i.dictionary code*/
                            html += '<select name="" >';
                            $.ajax({
                                url: "cbsCgreportHeadController.do?getfieldNameBycode",
                                data: {
                                    "fieldCode": i.dictionary
                                },
                                cache: false,
                                async: false,
                                dataType: 'json',
                                type: 'POST',
                                success: function (data) {
                                    var obj = data.obj;
                                    var s = "";
                                    for (var i in obj) {
                                        if (array[j][3] == obj[i].TYPECODE) {
                                            s += "<option value='" + obj[i].TYPECODE + "' selected='selected'>" + obj[i].TYPENAME + "</option>";
                                        } else {
                                            s += "<option value='" + obj[i].TYPECODE + "'>" + obj[i].TYPENAME + "</option>";
                                        }
                                    }
                                    html += s;
                                }
                            })
                            html += '</select>';
                        } else if (i.fieldType == '5') {  //日期格式
                            html += '<input class="easyui-datetimebox" value="' + array[j][3] + '" name="datatime_' + i.id + '">';
                        }
                        html += '</td>';

                    } else {

                        // i.fieldType 根据type，决定显示以什么方式输入查询的内容
                        html += '<td style="visibility: hidden;"><input type="hidden" value="' + i.fieldType + '">';
                        if (i.fieldType == '1') { /*普通*/
                            html += '<input type="text" name="" value="' + array[j][3] + '">';
                        } else if (i.fieldType == '2') {  /*其他业务表ID,做成模糊查询*/
                            html += '<input type="text" name="" value="' + array[j][3] + '">';
                        } else if (i.fieldType == '3') {  /*包含固定内容*/
                            html += '<select>';
                            if (i.fixedcontent != null && i.fixedcontent != '') {
                                var obj = $.parseJSON(i.fixedcontent);
                                for (var i = 0, l = obj.length; i < l; i++) {
                                    for (var key in obj[i]) {
                                        if (array[j][3] == obj[i][key]) {
                                            html += '<option value="' + obj[i][key] + '" selected="selected">' + key + '</option>';
                                        } else {
                                            html += '<option value="' + obj[i][key] + '">' + key + '</option>';
                                        }
                                    }
                                }
                                html += '</select>';
                            }
                        } else if (i.fieldType == '4') {/*字典值 i.dictionary code*/
                            html += '<select name="" >';
                            $.ajax({
                                url: "cbsCgreportHeadController.do?getfieldNameBycode",
                                data: {
                                    "fieldCode": i.dictionary
                                },
                                cache: false,
                                async: false,
                                dataType: 'json',
                                type: 'POST',
                                success: function (data) {
                                    var obj = data.obj;
                                    var s = "";
                                    for (var i in obj) {
                                        if (array[j][3] == obj[i].TYPECODE) {
                                            s += "<option value='" + obj[i].TYPECODE + "' selected='selected'>" + obj[i].TYPENAME + "</option>";
                                        } else {
                                            s += "<option value='" + obj[i].TYPECODE + "'>" + obj[i].TYPENAME + "</option>";
                                        }
                                    }
                                    html += s;
                                }
                            })
                            html += '</select>';
                        } else if (i.fieldType == '5') {  //日期格式
                            html += '<input class="easyui-datetimebox" value="' + array[j][3] + '" name="datatime_' + i.id + '">';
                        }
                        html += '</td>';
                    }

                    if (array[j][4] == "1") {
                        html += '<td><input type="checkbox" name="cgreport_' + i.id + '" ary="' + array[j][6] + '" value="1" checked="checked" onclick="chageCgreports(this,\'' + i.fieldType + '\')"></td>';
                    } else {
                        html += '<td><input type="checkbox" name="cgreport_' + i.id + '" ary="' + array[j][6] + '" value="0"  onclick="chageCgreports(this,\'' + i.fieldType + '\')"></td>';
                    }//是否是查询条件


                    /*关联关系*/
                    if (array[j][5] == 'AND') {
                        html += '<td><select><option value="AND" selected="selected">AND</option><option value="OR">OR</option></select></td>';
                    } else if (array[j][5] == 'OR') {
                        html += '<td><select><option value="AND">AND</option><option value="OR" selected="selected">OR</option></select></td>';
                    }


                    // 是否时间差查询,要根据条件是否满足时间差查询显示
                    if (i.term == 'type_date') {
                        if (array[j][6] == '1') {
                            html += '<td><input type="checkbox" name="' + i.rotaName + '" id="checkOnclick" checked="checked" onclick="checkboxOnclick(this)" value="1"></td>';
                        } else {
                            html += '<td><input type="checkbox" name="' + i.rotaName + '" onclick="checkboxOnclick(this)" value="0"></td>';
                        }
                    } else {
                        html += '<td></td>';
                    }

                    html += '</tr>';
                }
                j++;
            });
            $("#Ttbody").html(html);


            //查询条件
            $("select[name^='proTree_']").each(function () {
                var s = $(this).attr("attrs");
                var sid = $(this).attr("sid");
                var ary = $(this).attr("ary");  //ary="1" 时间差查询； ary="" 非时间差查询
                var m = $(this).attr("m");
                $(this).combotree({
                    url: 'cbsCgreportHeadController.do?getTermTree&term=' + s + '&checkedValue=' + map[m+sid],
                    required: true,
                    onLoadSuccess: function (node, data) {
                        for (var i in data) {
                            if (data[i].checked == true) {
                                var value = data[i].id;
                                $("#ProjectTree_" + m + sid).combotree('setValue', value + '');
                                if (ary == '1') {
                                    $("#ProjectTree_" + m + sid).parent("td").css("visibility", "hidden");
                                }
                            }
                        }
                    }
                });

            });

            //时间框
            $("input[name^='datatime_']").each(function () {
                $(this).datebox({
                    required: true
                });
            });

            //查询条件  时间差查询行回显的值
            $("select[name^='proTrees1_']").each(function () {
                var s = $(this).attr("attrs");
                var sid = $(this).attr("sid");
                var vs = $(this).attr("vs");
                $(this).combotree({
                    url: 'cbsCgreportHeadController.do?getTermTree&term=' + s + '&checkedValue=' + vs,
                    required: true,
                    onLoadSuccess: function (node, data) {
                        for (var i in data) {
                            if (data[i].checked == true) {
                                $("#ProjectTrees1_" + sid).combotree('setValue', data[i].id);
                            }
                        }
                    }
                });
            });
        }
    });


}

/**
 * 是否查询条件，默认触发事件
 */
function chageCgreport() {
    $("input[name^='cgreport_']").each(function () {
        var ary = $(this).attr("ary");
        if (this.checked == true) {
            if (ary != '1') {  //判断时间框查询是否勾选，如果没有勾选，则是否查询条件默认的内容显示
                $(this).parents("tr")["0"].children[1].children[1].style.visibility = "visible";
                $(this).parents("tr")["0"].children[2].style.visibility = "visible";
                $(this).parents("tr")["0"].children[4].children[0].style.visibility = "visible";
                if ($(this).parents("tr")["0"].children[5].children.length > 0) {
                    $(this).parents("tr")["0"].children[5].children[0].style.visibility = "visible";
                }
            }

        } else {
            $(this).parents("tr")["0"].children[1].children[1].style.visibility = "hidden";
            $(this).parents("tr")["0"].children[2].style.visibility = "hidden";
            $(this).parents("tr")["0"].children[4].children[0].style.visibility = "hidden";
            if ($(this).parents("tr")["0"].children[5].children.length > 0) {
                $(this).parents("tr")["0"].children[5].children[0].style.visibility = "hidden";
            }
        }
    });
}

/**
 * 回显勾选显示
 */
function chageCgreports(obj, type) {
    if (obj.checked == true) {
        if ($(obj).parents("tr").children("td").eq(5).children().size() > 0) {
            if (!$(obj).parents("tr").children("td").eq(5)["0"].children["0"].checked) {
                /*时间差查询*/
                $(obj).parents("tr").children("td").eq(5).children().css("visibility", "visible");
                $(obj).parents("tr").children("td").eq(1).children().css("visibility", "visible");
                $(obj).parents("tr").children("td").eq(4).children().css("visibility", "visible");

                /*查询内容列*/
                //日期类型
                $(obj).parents("tr").children("td").eq(2).children().css("visibility", "visible");
            }
        } else {
            $(obj).parents("tr").children("td").eq(1).children().css("visibility", "visible");
            $(obj).parents("tr").children("td").eq(4).children().css("visibility", "visible");
            /*查询内容列*/
            //日期类型
            $(obj).parents("tr").children("td").eq(2).children().css("visibility", "visible");
        }

    } else {
        /*时间差查询*/
        if ($(obj).parents("tr").children("td").eq(5).children().size() > 0) {
            if ($(obj).parents("tr").children("td").eq(5)["0"].children["0"].checked) {
                tip("请先去掉时间差查询");
                return false;
            }
            $(obj).parents("tr").children("td").eq(5).children().css("visibility", "hidden");
        }

        $(obj).parents("tr").children("td").eq(1).children().css("visibility", "hidden");
        $(obj).parents("tr").children("td").eq(4).children().css("visibility", "hidden");

        /*查询内容列 //日期类型*/
        $(obj).parents("tr").children("td").eq(2).children().css("visibility", "hidden");
    }
}


/**
 * 生成自定义条件
 */
function resGeneration() {
    var vkorg = $("#select_right option").map(function () {
        return $(this).val();
    }).get().join(",");
    $.ajax({
        url: "cbsCgreportHeadController.do?getCgreportGen",
        data: {
            "vkorg": vkorg
        },
        cache: false,
        dataType: 'json',
        type: 'POST',
        success: function (data) {
            var obj = data.obj;
            var html = '';
            //i.rotaName  所属表名
            //i.isZd   是否是数据字典
            // i.numbericField 字段名
            //i.id id
            obj.forEach(function (i, item) {
                html += '<tr><td>' +
                    '<input type="hidden" value="' + i.rotaName + '">' +
                    '<input type="hidden" value="' + i.numbericField + '">' + i.fieldChinese + '</td>';
                //i.term  根据类型，显示查询条件 class="easyui-combotree"
                html += '<td>' +
                    '<select name="proTree_' + i.id + '" attrs="' + i.term + '" style="width: 100px;">' +
                    '</select>' +
                    '</td>';

                // i.fieldType 根据type，决定显示以什么方式输入查询的内容
                html += '<td><input type="hidden" value="' + i.fieldType + '">';
                if (i.fieldType == '1') { /*普通*/
                    html += '<input type="text" name="">';
                } else if (i.fieldType == '2') {  /*其他业务表ID,做成模糊查询*/
                    html += '<input type="text" name="">';
                } else if (i.fieldType == '3') {  /*包含固定内容*/
                    html += '<select>';
                    if (i.fixedcontent != null && i.fixedcontent != '') {
                        var obj = $.parseJSON(i.fixedcontent);
                        for (var i = 0, l = obj.length; i < l; i++) {
                            for (var key in obj[i]) {
                                html += '<option value="' + obj[i][key] + '">' + key + '</option>';
                            }
                        }
                        html += '</select>';
                    }
                } else if (i.fieldType == '4') {/*字典值 i.dictionary code*/
                    html += '<select name="" >';
                    $.ajax({
                        url: "cbsCgreportHeadController.do?getfieldNameBycode",
                        data: {
                            "fieldCode": i.dictionary
                        },
                        cache: false,
                        async: false,
                        dataType: 'json',
                        type: 'POST',
                        success: function (data) {
                            var obj = data.obj;
                            var s = "";
                            for (var i in obj) {
                                s += "<option value='" + obj[i].TYPECODE + "'>" + obj[i].TYPENAME + "</option>";
                            }
                            html += s;
                        }
                    })
                    html += '</select>';
                } else if (i.fieldType == '5') {  //日期格式
                    html += '<input class="easyui-datetimebox" name="datatime_' + i.id + '">';
                }
                html += '</td>';


                //是否查询条件
                html += '<td><input type="checkbox" name="isCgrpot" value="1" checked="checked" onclick="groupCgrport(this)"></td>';

                /*关联关系*/
                html += '<td><select><option value="AND">AND</option><option value="OR">OR</option></select></td>';

                // 是否时间差查询,要根据条件是否满足时间差查询显示
                if (i.term == 'type_date') {
                    html += '<td><input type="checkbox" name="' + i.rotaName + '" onclick="checkboxOnclick(this)" value="1" ></td>';
                } else {
                    html += '<td></td>';
                }

                html += '</tr>';
            });
            $("#Ttbody").html(html);

            //查询条件
            $("select[name^='proTree_']").each(function () {
                var s = $(this).attr("attrs");
                $(this).combotree({
                    url: 'cbsCgreportHeadController.do?getTermTree&term=' + s,
                    required: true,
                    onLoadSuccess: function (node, data) {
                        var value;
                        for (var i in data) {
                            if (data[i].checked == true) {
                                value = data[i].id;
                            }
                        }
                        $(this).combotree('setValue', data[0].id);
                    }
                });
            });
            //时间框
            $("input[name^='datatime_']").each(function () {
                $(this).datebox({
                    required: true
                });
            });


            //将所有的是否查询条件，默认为否
            $("input[name^='isCgrpot']").each(function () {
                /*时间差查询*/
                if ($(this).parents("tr").children("td").eq(5).children().size() > 0) {
                    $(this).parents("tr").children("td").eq(5).children().css("visibility", "hidden");
                }
                $(this).parents("tr").children("td").eq(1).children().css("visibility", "hidden");
                $(this).parents("tr").children("td").eq(4).children().css("visibility", "hidden");
                /*查询内容列 //日期类型*/
                $(this).parents("tr").children("td").eq(2).children().css("visibility", "hidden");

                $(this).attr("checked", false);
            });

        }
    });
}

function selectTree(c) {
    /*获取对象的attr属性*/
    var termValue = $(c).attr("attrs");
    $(c).combotree({
        url: 'cbsCgreportHeadController.do?getTermTree&term=' + termValue,
        required: true,
        onLoadSuccess: function (node, data) {
            var value;
            for (var i in data) {
                if (data[i].checked == true) {
                    value = data[i].id;
                }
            }
            $("#ProjectTree").combotree('setValue', value);
        }
    });

}

/**
 * 时间框
 */
function checkDate(obj) {
    $(obj).datebox({
        required: true
    });
}

/**
 * 时间差改变时，随着改变时间差前的隐藏域
 * @param objs
 */
function changeChoice(value, obj) {
    $(obj).prev("#cheBox").val(value);
}

//时间差查询事件
function checkboxOnclick(objs) {
    if (objs.checked == true) {
        //获取可做时间差的数据
        $(objs).parents("tr").children("td").eq(1).children().css("visibility", "hidden");
        $(objs).parents("tr").children("td").eq(2).children().css("visibility", "hidden");

        var otabName = [], ttabName = [];//主表id 关联表id
        otabName.push($("#rotaListId").find("option:selected").val());
        $("select[name^='rotaListName1']").find("option:selected").each(function () {
            ttabName.push($(this).attr('selected', 'selected').val());
        });

        var t = '';
        $.ajax({
            url: "cbsCgreportHeadController.do?getTimeDiff",
            cache: false,
            data: {
                "otabName": JSON.stringify(otabName),
                "ttabName": JSON.stringify(ttabName)
            },
            dataType: 'json',
            type: 'POST',
            async: false,
            success: function (data) {
                var obj = data.obj;
                t += '<td><input type="hidden" id="cheBox" value="' + objs.name + '"><select style="width: 80px;" id="selectChebox" onchange="changeChoice(options[this.options.selectedIndex].getAttribute(\'chebox\'),this)">'
                obj.forEach(function (it) {
                    //不能显示所有的时间类型option，只能显示所选表或者关联表中的时间类型
                    t += '<option value="' + it.numbericField + '" chebox="' + it.rotaName + '">' + it.fieldChinese + '</option>';
                });
                t += '</select></td>';
            }
        });
        //i.term  根据类型，显示查询条件
        t += '<td>' +
            '<select id="ProjectTrees_' + objs.id + '" sid="' + objs.id + '" attrs="type_date" name="proTrees_' + objs.id + '" class="easyui-combotree" style="width: 100px;">' +
            '</select>' +
            '</td>' +    // value="1" 根据type，决定显示以什么方式获取查询的内容
            '<td><input type="hidden" value="1"><input type="text" style="width: 90px;"><span style="font-size: 10px">单位：小时</span></td><td><input type="checkbox" checked="checked" value="1" hidden="hidden"></td><td></td><td></td>';
        var $tr = $(objs).parents('tr').eq(0);
        $tr.after('<tr>' + t + '</tr>');


        //查询条件 + '&checkedValue=' + map[sid]  回显的值
        $("select[name^='proTrees_']").each(function () {
            var s = $(this).attr("attrs");
            var sid = $(this).attr("sid");
            $(this).combotree({
                url: 'cbsCgreportHeadController.do?getTermTree&term=' + s,
                required: true,
                onLoadSuccess: function (node, data) {
                    for (var i in data) {
                        if (data[i].checked == true) {
                            var value = data[i].id;
                            $("#ProjectTrees_" + sid).combotree('setValue', value + '');
                        }
                    }
                }
            });
        });
    } else {
        $(objs).parents("tr").children("td").eq(1).children().css({'visibility': 'visible'});
        $(objs).parents("tr").children("td").eq(2).children().css({'visibility': 'visible'});


        //去掉时间差查询，默认勾选查询条件
        if ($(objs).parents("tr").children("td").eq(3).size() > 0) {
            $(objs).parents("tr").children("td").eq(3)["0"].children["0"].checked = true;
        }


        var $tr = $(objs).parents('tr').eq(0);
        $tr.next('tr').remove();
    }
}

/**
 * 是否查询条件
 */
function groupCgrport(obj) {
    //如果 是否查询条件 为勾选状态则显示查询条件、查询内容、组合条件、时间差查询（当查询项目名称为时间类型字段时才显示），否则隐藏
    if (obj.checked == true) {
        if ($(obj).parents("tr").children("td").eq(5).children().size() > 0) {  //如果 时间差查询列 存在控件
            if (!$(obj).parents("tr").children("td").eq(5)["0"].children["0"].checked) {  //如果该控件为勾选状态
                /*时间差查询*/
                $(obj).parents("tr").children("td").eq(5).children().css("visibility", "visible");
                $(obj).parents("tr").children("td").eq(1).children().css("visibility", "visible");
                $(obj).parents("tr").children("td").eq(4).children().css("visibility", "visible");

                /*查询内容列*/
                //日期类型
                $(obj).parents("tr").children("td").eq(2).children().css("visibility", "visible");
            }
        } else {
            $(obj).parents("tr").children("td").eq(1).children().css("visibility", "visible");
            $(obj).parents("tr").children("td").eq(4).children().css("visibility", "visible");
            /*查询内容列*/
            //日期类型
            $(obj).parents("tr").children("td").eq(2).children().css("visibility", "visible");
        }

    } else {
        /*时间差查询*/
        if ($(obj).parents("tr").children("td").eq(5).children().size() > 0) {
            if ($(obj).parents("tr").children("td").eq(5)["0"].children["0"].checked) {
                tip("请先去掉时间差查询");
                return false;
            }
            $(obj).parents("tr").children("td").eq(5).children().css("visibility", "hidden");
        }

        $(obj).parents("tr").children("td").eq(1).children().css("visibility", "hidden");
        $(obj).parents("tr").children("td").eq(4).children().css("visibility", "hidden");

        /*查询内容列 //日期类型*/
        $(obj).parents("tr").children("td").eq(2).children().css("visibility", "hidden");
    }
}


/**
 * 初始化，默认为否
 */
function groupCgrportNo(obj) {
    /*时间差查询*/
    if ($(obj).parents("tr").children("td").eq(5).children().size() > 0) {
        if ($(obj).parents("tr").children("td").eq(5)["0"].children["0"].checked) {
            tip("请先去掉时间差查询");
            return false;
        }
        $(obj).parents("tr").children("td").eq(5).children().css("visibility", "hidden");
    }

    $(obj).parents("tr").children("td").eq(1).children().css("visibility", "hidden");
    $(obj).parents("tr").children("td").eq(4).children().css("visibility", "hidden");

    /*查询内容列 //日期类型*/
    $(obj).parents("tr").children("td").eq(2).children().css("visibility", "hidden");
}